package com.hjw.hjwmall.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hjw.common.utils.PageUtils;
import com.hjw.hjwmall.product.entity.CategoryEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;

/**
 * 商品三级分类
 *
 * @author hjw
 * @email hjw@gmail.com
 * @date 2021-08-02 20:18:50
 */
public interface CategoryService extends IService<CategoryEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 查找所有分类及其子类列表，以树形组装
     *
     * @return List<CategoryEntity> 分类列表
     */
    List<CategoryEntity> listWithTree();

    /**
     * 根据ids批量删除分类
     *
     * @param catIds 分类id列表
     * @return 删除结果
     */
    boolean removeCategoryByIds(@NotNull List<Long> catIds);

    /**
     * 新增分类
     *
     * @param category 分类对象
     * @return 增加结果
     */
    boolean saveCategory(@NotNull CategoryEntity category);

    /**
     * 根据名称获取分类信息
     *
     * @param categoryName 分类名称
     * @return CategoryEntity 分类信息
     */
    CategoryEntity getCategoryByName(@NotBlank String categoryName);
}

